/**
 * Вспомогательный класс для сериализации и десериализации даты.
 * В качестве формата хранения выбран XML, закодированный в Base64
 */

#ifndef _DATESERIALIZER_H
#define	_DATESERIALIZER_H

#include <string>
#include "ObjectSerializer.h"
#include "XmlSerializer.h"
#include "ParseException.h"
#include "Date.h"
#include "conf.h"

namespace etu {
namespace common {

class DateSerializer : public ObjectSerializer<Date *>, public XmlSerializer {
public:
    DateSerializer() {}
    DateSerializer(const DateSerializer& orig)
        : ObjectSerializer<Date *>(orig), XmlSerializer(orig) {}
    virtual ~DateSerializer() {}
    virtual std::string serialize(Date * date);
    virtual Date * deserialize(const std::string& src) throw(ParseException);
};

}
}

#endif	/* _DATESERIALIZER_H */

